Field
The present invention relates generally to databases, particularly to improving database performance and scalability.
Background
High-performance enterprise applications often encounter performance bottlenecks and scalability problems when trying to access data stored in a database. Traditionally, databases have used disk-based storage devices to store data. However, disk access can be very slow. To improve database performance, main memory has been used as a data buffer or cache for data stored on disk. To further improve performance and resolve scalability issues, particularly for large enterprise applications, traditional databases have employed distributed caching systems, which combine the scalability of distributed systems with the reduced access latency of main memory.
However, existing distributed caching systems pose significant challenges for database application developers and database administrators. For example, application developers and database administrators must determine how best to design and organize a distributed caching system in order to avoid database efficiency and performance problems. This involves a detailed understanding of not only which data should be cached, but also how and when such data is accessed. As information related to the enterprise database environment is often unavailable or difficult to acquire, it may be extremely difficult for application developers and database administrators to gain such an understanding.